const jwt = require('jsonwebtoken');

// JWT 验证中间件
function authMiddleware(req, res, next) {
    // 从请求头中获取 token
    const token = req.header('Authorization')?.replace('Bearer ', '');

    // 如果没有 token，返回 401 错误
    if (!token) {
        return res.status(401).json({ msg: 'No token, authorization denied' });
    }

    try {
        // 验证并解析 JWT
        const decoded = jwt.verify(token, 'secretkey'); // 这里的 'secretkey' 需要和你生成 token 时使用的密钥一致
        req.user = decoded.user; // 将用户信息存入 req.user，供后续路由使用
        next(); // 执行下一个中间件或路由处理器
    } catch (err) {
        // 如果 token 无效
        console.error('Token is invalid:', err);
        res.status(401).json({ msg: 'Token is not valid' });
    }
}

module.exports = authMiddleware;